package VisualOperadores;

import java.util.ArrayList;

import Tela.AcaoPanelGrafo;
import Tela.ItemPGNoh;

public class AcaoPgSelecaoX extends AcaoPanelGrafo {

	private String operator;
	private ArrayList<String> selecao;

	public AcaoPgSelecaoX() {
		selecao = new ArrayList<String>();
	}

	public String executar(int x, int y) {

		ItemPGNoh noh = new ItemPGNoh(x, y, "Selecao");
		noh.SetSql(this.doSQL());
		getPanelGrafo().addItem(noh); // mudar para colocar o simbolo de sELECAO
		return null;
	}

	public void encerrar(int x, int y) {
		// nada a fazer aqui
	}

	public void mover(int x, int y) {
		// nada a fazer aqui
	}

	public void mudouAcao() {
	}

	public void setOperator(String Operador) {
		this.operator = Operador;
	}

	public void setSelecao(String strCondicao) {
		this.selecao.add(strCondicao);
	}

	public String getSelecao() {
		StringBuilder condicao = new StringBuilder();
		condicao.append("1=1 AND ");
		if (selecao != null) {
			for (String strCond : this.selecao) {
				condicao.append(" (" + strCond + ") ");
			}
		}
		return condicao.toString();
	}

	public String doSQL() {
		StringBuilder buffer = new StringBuilder();

		buffer.append("SELECT " + "	* " + "FROM " + "	(" + this.operator
				+ ") as projecao " + "WHERE " + this.getSelecao());

		return buffer.toString();
	}

}
